Bacula est un logiciel open source de sauvegarde professionnel. Il permet de sauvegarder le contenu d'un PC, ou plusieurs PC en réseau.
Bacula dispose de très nombreuses fonctionnalités. Utilisé correctement vous serez toujours certain de pouvoir restaurer n'importe quel fichier, à n'importe quelle date (retrouver un texte par exemple tel qu'il était rédigé il y a deux mois, sachant que vous l'avez modifié 10 fois depuis, etc.)
MAIS SA CONFIGURATION FINE NÉCESSITE DE NOMBREUSES CONNAISSANCES PROPRES AU MONDE DE LA SAUVEGARDE.
Cette page ne pourra jamais vous dispenser d'aller jeter un coup d'œil au manuel (en français) situé ici.
Ce tutoriel est destiné à ceux qui souhaitent sauvegarder automatiquement leur configuration et leurs fichiers, afin de ne rien perdre en cas de crash disque, de corruption de données (ou simplement de suppression de fichiers trop rapide).
Il est possible de sauvegarder sur des bandes magnétiques ou des DVD, mais étant donné le prix d'un lecteur de bandes, nous allons utiliser une méthode moins coûteuse : un second disque dur (quelques centaines de Go, ce qui dans une optique de sauvegarde personnelle est largement suffisant).
Afin de pouvoir être averti par mail que la sauvegarde a été effectuée ou des problèmes éventuels, installer :
mail_location = mbox:~/mail:INBOX=/var/mail/%u
puis taper dans un terminal
/etc/init.d/dovecot restart
afin que le changement de configuration soit pris en compte
Je suppose ici que le second disque dur est monté sur /dev/sdb1 (c'est à dire le second disque IDE/SATA).
Pour plus de détail sur la numérotation/nommage des disques dur, voir http://www.debian.org/releases/stable/i386/apcs04.html.fr
/opt/SAUVEGARDE sudo mkdir /opt/SAUVEGARDE
Normalement il est maintenant possible de monter le second disque dur :
sudo mount /opt/SAUVEGARDE
| Type de sauvegarde | Définition |
|---|---|
| Totale (Full) | Une sauvegarde complète (autrement dit de tout ce qui est dans les répertoires listés). Attention si vous modifiez la liste des fichiers/répertoires à sauvegarder dans /etc/bacula/bacula-dir.conf, une sauvegarde totale sera effectuée la première fois. |
| Differentielle (Differential) | Une sauvegarde qui inclut tous les fichiers modifiés depuis le lancement de la dernière sauvegarde complète (Full). Notez que d'autres logiciels de sauvegarde peuvent définir ceci différemment. |
| Incrementale (Incremental) | Une sauvegarde qui inclut tous les fichiers modifiés depuis le lancement de la dernière sauvegarde complète (Full), différentielle, ou incrémentale. Normalement spécifié dans la directive Level (niveau) dans la définition de la ressource Job, ou dans une ressource Schedule. |
Pour plus de detail voir http://www.bacula.org/fr/dev-manual/Qu_est_ce_que_Bacula.html.
éditez /etc/bacula/bacula-dir.conf
JobDefs {
....
# cf http://www.bacula.org/en/dev-manual/Automated_Disk_Backup.html
Full Backup Pool = Full-Pool
Incremental Backup Pool = Inc-Pool
Differential Backup Pool = Diff-Pool
# fin modif
......
}
Job {
Name = "BackupConti"
JobDefs = "DefaultJob"
Write Bootstrap = "/opt/SAUVEGARDE/bacula/Client1.bsr"
}
Job {
Name = "RestoreFiles"
#changer la ligne ci-dessous
Where = /opt/SAUVEGARDE/bacula-restores
FileSet { Name = "Full Set"
Include {
Options {
signature = MD5
compression=GZIP
}
File = /etc
File = /home/mon_nom_d'utilisateur
File = /home/mon_second_utilisateur
Exclude {
# File = /proc
# File = /tmp
File = /home/mon nom d utilisateur/tmp
File = /home/mon nom d utilisateur/Modèles
File = /home/mon nom d utilisateur/.thumbnails
File = /home/mon nom d utilisateur/.mozilla/firefox/e3s99zut.default/Cache
File = /home/hmon nom d utilisateur/.gimp-2.6
File = /home/mon nom d utilisateur/.google
File = /home/mon nom d utilisateur/.googleearth
File = /home/mon nom d utilisateur/.local/share/Trash/
# File = /.journal
# File = /.fsck
}
.local/share/Trash/ est la corbeille
.mozilla/firefox/e3s99zut.default/Cache est le cache du navigateur (remplacer "e3s99zut" par le dossier correspondant à votre profil)
.thumbnails est pour les photos
Schedule {
Name = "WeeklyCycle"
Run = Full 1st sun at 19:05
Run = Differential 2nd-5th sun at 19:05
Run = Incremental mon-sat at 19:05
}
# This schedule does the catalog. It starts after the WeeklyCycle
Schedule {
Name = "WeeklyCycleAfterBackup"
Run = Full sun-sat at 19:20
}
Write Bootstrap = "/opt/SAUVEGARDE/bacula/BackupCatalog.bsr" Write Bootstrap = "/opt/SAUVEGARDE/bacula/Client1.bsr"
Job {
# WARNING!!! Passing the password via the command line is insecure.
# see comments in make_catalog_backup for details.
# Arguments to make_catalog_backup are:
# make_catalog_backup <database-name> <user-name> <password> <host>
#
# Ubuntu uses make_catalog_backup_awk script for
# security reasons
# Replace <CatalogName> with the real Catalog name
#
#autrement dit mettre cat1=MyCatalog dans la ligne ci dessous
RunBeforeJob = "/usr/bin/awk -f /etc/bacula/scripts/make_catalog_backup_awk -v cat1=MyCatalog /etc/bacula/bacula-dir.conf"
-----
}
mail = mon_nom_utilisateur@localhost = all, !skipped operator = mon_nom_utilisateur@localhost = mount
Ajouter les lignes suivantes (cf http://www.bacula.org/en/dev-manual/Automated_Disk_Backup.html)
Pool {
Name = Full-Pool
Pool Type = Backup
Recycle = yes # automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 6 months
Maximum Volume Jobs = 1
Label Format = Full-
# Maximum Volumes = 9
}
Pool {
Name = Inc-Pool
Pool Type = Backup
Recycle = yes # automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 20 days
Maximum Volume Jobs = 6
Label Format = Inc-
Maximum Volumes = 7
}
Pool {
Name = Diff-Pool
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 40 days
Maximum Volume Jobs = 1
Label Format = Diff-
Maximum Volumes = 10
}
éditez /etc/bacula/bacula-sd.conf
Device {
Name = FileStorage
Archive Device = /opt/SAUVEGARDE/bacula
bacula-dir.conf comme l'endroit où va se faire la sauvegarde.
Afin que l'utilisateur puisse avoir accès à la console Bacula, il doit être dans le groupe (au sens unix du terme) « bacula »
adduser mon_nom_utilisateur bacula
Lancer les commandes ci-dessous dans un terminal :
sudo mkdir /opt/SAUVEGARDE/bacula sudo chown -R bacula /opt/SAUVEGARDE/bacula sudo chgrp -R bacula /opt/SAUVEGARDE/bacula sudo mkdir /opt/SAUVEGARDE/bacula-restores sudo chgrp bacula /opt/SAUVEGARDE/bacula-restores sudo chown bacula /opt/SAUVEGARDE/bacula-restores
Cette étape est utile en cas de crash disque (i.e. la totalité de la configuration de Bacula est perdue) :
sudo cp /etc/bacula/*.conf /opt/SAUVEGARDE
Pour que Bacula prennent en compte les modifications apportées au fichier de configuration, lancer les commandes ci-dessous dans un terminal :
sudo /etc/init.d/bacula-director restart sudo /etc/init.d/bacula-fd restart sudo /etc/init.d/bacula-sd restart
Bacula lui même est un outil en ligne de commande mais un autre outil permet d'utiliser une interface graphique. Pour cela il suffit de taper dans un terminal :
bat -c /etc/bacula/bat.conf
alacarte
bat » et remplacer /usr/sbin par /usr/bin
A partir de cette interface graphique vous pouvez tester si votre installation fonctionne en effectuant une sauvegarde (vous devriez recevoir un mail à la fin) et en effectuant une restauration (qui sera dans /opt/SAUVEGARDE/bacula-restores).
bacula vous ne pourrez pas le voir.